﻿using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;

namespace Engine
{
    /// <summary>
    /// Список глобальных переменных
    /// </summary>
    public sealed class Global
    {

        public sealed class Settings
        {
            private static int shadowquality = 0;
            /// <summary>
            /// Качество теней 0 - Max, 1 - Medium, 2 - Min
            /// </summary>
            public static int ShadowQuality
            {
                get { return shadowquality; }
                set { shadowquality = value; }
            }

            private static int multisample = 0;
            /// <summary>
            /// Качество сглаживания 0, 2, 4, 8
            /// </summary>
            public static int MultiSample
            {
                get { return multisample; }
                set { multisample = value; }
            }

            private static bool shadow = true;
            /// <summary>
            /// Наличие теней
            /// </summary>
            public static bool Shadow
            {
                get { return shadow; }
                set { shadow = value; }
            }

            private static int vsync = 0;
            /// <summary>
            /// Вертикальная синхронизация
            /// </summary>
            public static int VSync
            {
                get { return vsync; }
                set { vsync = value; }
            }

            private static int width = 1024;
            /// <summary>
            /// Ширина экрана
            /// </summary>
            public static int Width
            {
                get { return width; }
                set { width = value; }
            }

            private static int height = 768;
            /// <summary>
            /// Высота экрана
            /// </summary>
            public static int Height
            {
                get { return height; }
                set { height = value; }
            }

            private static bool fullscr = false;
            /// <summary>
            /// На весь экран
            /// </summary>
            public static bool FullScr
            {
                get { return fullscr; }
                set { fullscr = value; }
            }

            private static bool run = false;
            public static bool Run
            {
                get { return run; }
                set { run = value; }
            }
            private static bool invalt = false;
            /// <summary>
            /// Инвертировать функцию альта
            /// </summary>
            public static bool InvAlt
            {
                get { return invalt; }
                set { invalt = value; }
            }

            private static bool refract = true;
            /// <summary>
            /// Включить преломления
            /// </summary>
            public static bool Refract
            {
                get { return refract; }
                set { refract = value; }
            }

            private static int light = 0;
            /// <summary>
            /// Дополнительные источники света
            /// </summary>
            public static int Light
            {
                get { return light; }
                set { light = value; }
            }

            private static int texturefiltering = 16;
            /// <summary>
            /// Тип фильтрации текстур. -2 билинейная, -1 трилинейная, 0 - 16 анизотропная
            /// </summary>
            public static int TextureFiltering
            {
                get { return texturefiltering; }
                set { texturefiltering = value; }
            }
        }

        public const int TreeSteps = 20;
    }
} 
